package cam.School.DataAccessObject;

import java.util.List;

import cam.School.DAOException.DAOException;
import cam.School.DataTransfertObject.CallResult;
import cam.School.DataTransfertObject.StudentDTO;
import cam.School.DataTransfertObject.SubjectDTO;

public interface SubjectDAO {
	
	public SubjectDTO getById(Long id) throws DAOException;
	
	public SubjectDTO getByName(String name);

	public List<SubjectDTO> getAllSubjectName()throws DAOException;
	public List<SubjectDTO> getAllSubject() throws DAOException;

	public CallResult create(List<SubjectDTO> subject, long employeeId) throws IllegalArgumentException,
			DAOException;

	public CallResult updateSubjectList(List<SubjectDTO> subject, long employeeId) throws IllegalArgumentException,
	DAOException;
	
	public void update(SubjectDTO subject) throws IllegalArgumentException,
			DAOException;

	public void delete(int subjectId);

	public List<SubjectDTO> getAllByEmployee();
}
